This application is submitted in the name of the following inventor:
The assignee is Cisco Technology, Inc., a California corporation having an office at 170 West Tasman Drive, San Jose CA 95134.
Enhanced Internet Packet Routing Lookup
1. Field of the Invention
The invention relates to packet switching.
2. Related Art
In a packet-switched network, a xe2x80x9crouterxe2x80x9d is a device which receives packets on one or more input interfaces and which outputs those packets on one of a plurality of output interfaces, so as to move those packets within the network from a source device to a destination device. Each packet includes header information which indicates the destination device (and other information), and the router includes routing information which associates an output interface with information about the destination device (possibly with other information). The router can also perform other operations on packets, such as rewriting the packets according to their routing protocol or to reencapsulate the packets from a first routing protocol to a second routing protocol. It is advantageous for routers to operate as quickly as possible, so that as many packets as possible can be switched in a unit time.
One problem which has arisen in the art is that routing lookup, that is, determining an output interface on which to output the packet in response to the header information from the packet, can take substantial processing time, and that the demand on the router from that processing time continues to grow with increased network demand and increased network size. This problem has been exacerbated by addition of more complexity in routing protocols and routing techniques, such as the use of access control lists, network flow switching, quality of service requirements, and of attempts to determine the nature or routing treatment of packets in response to their source.
Some known routers, such as those described in U.S. application Ser. No. 08/655,429, xe2x80x9cNetwork Flow Switching and Flow Data Exportxe2x80x9d, filed May 28, 1996, in the name of inventors Darren Kerr and Barry Bruins, and assigned to Cisco Systems, Inc., attorney docket number CIS-016, now U.S. Pat. No. 6,243,667 and U.S. application Ser. No. 08/771,438, having the same title, filed Dec. 19, 1996, in the name of the same inventors, assigned to the same assignee, attorney docket number CIS-017, now U.S. Pat. No. 6,308,148 determine routing lookup in response to a network xe2x80x9cflowxe2x80x9d associated with the packet, rather than just in response to the destination address for the packet. This technique, called network flow switching, allows the router to determine routing procedure a single time for the entire flow, and to route all packets for the flow in the same manner.
While such routers are able to reduce the number of routing lookup operations required for a sequence of packets in a flow, they do not take advantage of all information available for rapid routing. For a first example, for some packets the amount of packet header information for determining an output interface can be relatively longer or shorter (as in IP protocols, where entire sets of destination addresses can sometimes be assigned to a single output interface). For a second example, for some packets (as in multicast protocols, due to the nature of the multicast tree) the choice of output interface can be responsive to the input interface from which the packet was received.
Accordingly, it would be desirable to provide a method and system for performing routing lookup, which is responsive both to the header information associated with a packet and to the length of that header information, and which is makes use of all useful information including an input interface from which the packet was received. These advantages are achieved in an embodiment of the invention in which both the destination address and the length of that destination address are matched using a lookup table having separate entries for selected addresses and their lengths, which can be accessed in parallel for multiple representations of destination addresses, and in which the input interface associated with the packet is included in the information used for matching.
The invention provides a method and system for routing information lookup for packets using routing protocols such as IP or IP multicast (IGMP), or MPLS (multiprotocol label switching, also known as tag switching or label switching) or MPLS multicast, in which both the destination address and the length of that destination address are matched using a lookup table having separate entries for selected addresses and their lengths, which can be accessed in parallel for multiple representations of destination addresses, and in which the input interface associated with the packet is included in the information used for matching.